Businesses define and execute business processes. In the context of the present patent application and in the claims, a “process” is defined as a set of activities, also known in the art as tasks, together with transitions among these activities. The transitions are subject to constraints on execution order, also referred to as the “control flow.” Business processes are often complex, and include user interactions, interactions with distributed services, and complex conditional control flow. Processes are often defined by states of a state machine, and/or a collection of activities with transitions between them. Workflow management is one type of process management.
Dedicated languages have been developed to model business processes. Business Process Execution Language (BPEL) is one such language that is currently widely used. BPEL is an XML-based language that allows a business process developer to define business processes, including interactions with external entities, and control flow, such as branching and looping within a process. A business process engine parses BPEL definition files to execute the processes defined by the files. The complexity of business process languages such as BPEL has driven the development of business process definition GUI tools that allow developers to construct business processes graphically.
Johnson R et al., in “The Spring Framework-Reference Documentation,” version 2.0.2, Interface21, available on the Internet, describe the Spring Framework. This framework is an open-source Java/J2EE application framework that includes JavaBeans-based configuration, an Aspect-Oriented Programming (AOP) framework, declarative transaction management, Java Database Connectivity (JDBC) and Hibernate support, and a web Model-View-Controller (MVC) framework. Chapter 9.5 describes Spring's implementation of declarative transaction management, which includes the use of a @Transactional annotation. The @Transactional annotation is metadata that can be consumed by something that is @Transactional-aware and that can use the metadata to configure the appropriate beans with transactional behavior.
JBoss jBPM, distributed by JBoss, a division of Red Hat, Inc. (Raleigh, N.C.), is an extensible workflow management system that enables the creation of business processes that coordinate between people, applications and services. jBPM is a platform for multiple process languages, which supports workflow, business process management (BPM), and process orchestration. jBPM currently supports two process languages: (1) jPDL, which is a process language to implement BPM and workflow in Java that combines human task management with workflow process constructs that can be built in Java applications, and (2) BPEL, which provides process orchestration.